TwinTurbo.NET: Nissan 300ZX forum - JWT's programs are simply revised OEM Nissan programs.
People Seeking Info
 
   


     
Subject JWT's programs are simply revised OEM Nissan programs.
     
Posted by Ash's Z on May 03, 2006 at 9:23 PM
  This message has been viewed 542 times.
     
In Reply To I recommend JWT. This is why... posted by DVDBURN (MD) on May 03, 2006 at 11:59 AM
     
Message The core of the program that operates the processor in the ECU is the same in my programs, JWT programs, any other Z32 tuners' programs which still use the Z32 ECU.

My programs were not originally JWT programs that I modified - my programs are Nissan OEM programs of which I have modified in my own ways to achieve the results that are consistent with my knowledge of how the operating parameters of our engines (namely fuel delivery and timing advance) should be tailored for performance oriented operation.

If you take an OEM ECU apart, remove the EPROM, extract the binary information from the chip and view the data, it is 32 kilobytes of 8-bit hex information. If you compare the binary data of an OEM program to that of a JWT, AshSPEC, or any of the other performance "chips" out there for this car, you will see that there is only about 100 bytes different, of which are directly tied into fuel delivery, ignition timing, rev limiter, speed limiter, and a few other points of data.

OEM ECU "tuners" do not rewrite the entire program from scratch - that would be a completely unnecessary process - all that needs to be done is simply small revision to a few of the operating parameters to account for the various hardware modification in the vehicle, fuel octane, etc etc.

I have heard some people make accusations that I used the JWT program and compared this to a stock program and from those differences, figured out how it all works. This was not the case, and in fact, doing that would be a fruitless attempt to understand how the ECU operates and what the data on the EPROM means.

There are two processors in the ECU: a Hitachi 6303 8-bit processor and a Hitachi 63140 universal pulse processor; a twin parallel processor setup with a shared 16-bit databus. The 6303 processor uses the program within the EPROM to define its operation, that operation primarily consisting of performing calculations using the sensor data collected by the 63140 processor (which has several 12-bit ADC converters, timer/counters, linked to the input sensors) to determine the fine, precision operating parameters such as injector pulsewidth, ignition timing, and a plethora of other operating parameters.

If you remove the EPROM from the ECU, the engine will still fire up, however, it will run very poorly. Without the EPROM in the ECU to provide the "program" for the 6303 processor, there is no "fine, precision" process to tell the 63140 processor what exact control values should be used. In essence, the 63140 processor is what runs the engine, and the 6303 is like the 63140's analyst and mathematician. Consider the 63140 as the body, and the 6303 as the brain. If the 6303 doesn't have a program, the ECU runs in limp mode - analogous to a person in a coma state, but their body still performs all of the basic functions required to stay alive.

There are many programs available that are designed to "disassemble" compiled programs. The data that you see in the binary dump of a Z32 EPROM is machine-level code: there is nothing in that data that tells you "hey - this is the injector constant value", or "hey, this is the subroutine for determining theoretical pulsewidth". Although when the Nissan engineers wrote the program, they DID have notes in the uncompiled version of the program they were working with, all of that is lost when it is compiled into the final binary data that you see on the chip.

The process of decompilation of the binary program on the EPROM simply converts the binary into an "assembler" format that you can read in english, however, you are still only looking at the sequence of instructions that the processor uses, of which are NOT defined like "get the current RPM value and see if it is exceeding the rpm limiter". Rather, you see information like this:

99C8 ldab loc_FFB4 ; Load accumulator from memory
99CB clra ; Clear
99CC subb #3 ; Subtract
99CE lsld ; Logical (or Ariphmetic) shift left double
99CF lsld ; Logical (or Ariphmetic) shift left double
99D0 bsr sub_9A15 ; Branch to subroutine
99D2 stab byte_15F4 ; Store accumulator in memory
99D5 ldaa byte_1407 ; Load accumulator from memory
99D8 beq loc_99E4 ; Branch if equal
99DA ldab loc_FFA5 ; Load accumulator from memory
99DD bsr sub_9A0A ; Branch to subroutine
99DF staa byte_15F5 ; Store accumulator in memory
99E2 bra loc_9A2E ; Branch always

These lines of code are a small section of code that involve both the rev limiter and speed limiter, but you wouldn't know this just to look at the decompiled data - figuring out what this little section of code is doing requires that you know what each of the values represent.

The english instruction on the right of each line of code is put in by the disassembly program simply to aid the user in their process. "bra" is the instruction, which is short for branch always, and in the EPROM binary, this line of code appears as this:

99C0 B1 F7 C4 24 F6 71 7F AC-F6 FF B4 4F C0 03 05 05 "¦˜-$÷q¼÷ ¦O+"
99D0 8D 43 F7 15 F4 B6 14 07-27 0A F6 FF A5 8D 2B B7 "ìC˜§(¦¶'
÷ Ñì++"
99E0 15 F5 20 4A B6 14 6A B1-FF E9 25 3F F6 14 17 F1 "§) J¦¶j¦ T%?÷¶±"

When the processor gets to line 99C8, the instruction is telling the processor to get the data value in the EPROM at location FFB4 and load it into accumulator b. 99CC tells the processor to subtract the value from #3 (which is the io_port2).

While you can see what the program is doing in terms of the mathematical steps it is taking, it doesn't tell you what the values in those calculations actually represent.

What I am getting at here is the fact that in order to possess the ability to make a change to the program and know exactly how it will affect engine performance, you must know the processes the computer is using to run the engine as well as have a firm understanding of how an engine works. Just looking at a raw binary dump of an eprom will give you no insight into any understanding - that is just one drop in the ocean.




[ ashspecz.com ]
[ agpowers@bellsouth.net ]

Enthusiasts soon understand each other. --W. Irving.
Are you an enthusiast?

If you are out to describe the truth, leave elegance to the tailor.
Albert Einstein

     
Follow Ups  
     
Post a
Followup

You cannot reply to this message because you are not logged in.